Skip to content

Default symbols to the :: trigger on fresh installs - #225

Merged
wr merged 1 commit into
mainfrom
wells/w-978-symbols-default-to-the-trigger-instead-of
Oct 5, 2026
Merged

wr merged 1 commit into
mainfrom
wells/w-978-symbols-default-to-the-trigger-instead-of

Conversation

@wr

@wr wr commented Oct 5, 2026

Copy link
Copy Markdown
Owner

On a fresh install, ::degree does nothing. W-451 (#153) turned symbols on by default but blended them into the : emoji results (symbolsFollowEmoji = true), and in that mode :: isn't a trigger at all. The README, the homepage and every guide page teach ::.

Change

  • Fresh installs (no saved triggers and no legacy symbols prefs) get the scoped :: trigger. TriggerConfig.default.symbolsFollowEmoji is now false, and TriggerConfigStore.migrate uses it when no legacy keys exist.
  • The onboarding and Settings symbol pickers treat :: as the default when you clear a custom trigger.
  • Existing installs keep whatever they have saved. The legacy-pref migration is unchanged, and a saved blob without the flag still decodes as blended.

Side effect: telemetry's triggersCustom compared saved configs to an un-normalized default, so every blended default install reported true. Fresh installs now report false, so the stats page's custom-trigger share will drop. The old number was inflated.

Tests

  • Updated the 6 tests that pinned the blended default. Added doubleColonOpensSymbolsScopeByDefault and migrationKeepsLegacyBlendedSymbols.
  • TriggerStateMachineTests, TriggerMatcherTests and TriggerConfigStoreTests pass (112 tests), run through SwiftPM with the Command Line Tools.
  • The full Xcode suite and an app build have not run: Xcode isn't installed on this Mac right now, so this was pushed with --no-verify. Please run scripts/run-tests.sh before merging.

Refs W-978

W-451 turned symbols on for fresh installs but blended them into the `:`
emoji results (symbolsFollowEmoji = true). In that mode `::` isn't an
opener at all, so the `::degree` / `::em_dash` the site, README and
onboarding teach just cancels on a new install.

Fresh installs (no saved triggers and no legacy symbols prefs) now get
the scoped `::` trigger, and the onboarding / Settings pickers treat
`::` as the symbols default. Existing installs keep whatever they have
saved: the migration still maps legacy prefs the old way, and a saved
config without the flag still decodes as blended.

Side effect: telemetry's `triggersCustom` compared saved configs to an
un-normalized default, so every blended default install reported true;
fresh installs now report false.

Refs: W-978
@linear-code

linear-code Bot commented Oct 5, 2026

Copy link
Copy Markdown

W-978

@wr
wr merged commit 4337162 into main Oct 5, 2026
3 checks passed
@wr
wr deleted the wells/w-978-symbols-default-to-the-trigger-instead-of branch October 5, 2026 14:52
wr added a commit that referenced this pull request Oct 5, 2026
* Fix stale homepage claims and add attributed download CTAs

The FAQ said Mojito works in Terminal and Notion (both excluded by
default) and stays out of Messages (it doesn't, and the demo shows
iMessage). The customize answer still described symbols as an optional
:cmd: mode, but since #225 fresh installs get them on ::.
The hero demo also typed in Terminal with no hint that dev tools are
opt-in, so it now shows a note while that window is up.

The only download button was in the nav, so the hero and the end of the
page get one each. All three homepage links go through /download with
ref=home so homepage downloads are attributed like the guide pages.

The Privacy section repeated the /privacy page in three paragraphs; it
is now one line and a link. Every changed string is updated in all 19
locales.

Refs: W-993

* Drop the Terminal demo note

No one has been confused by the Terminal scene, so the caveat added
noise without fixing a real problem.

Refs: W-993
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant